﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Security;
namespace Lxzhu.OpenGL
{
    /// <summary>
    /// glVertex*系列的函数都列在这里.
    /// </summary>
    public partial class Gl
    {
        #region 提供顶点
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2s")]
        public static extern void glVertex(short x, short y);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3s")]
        public static extern void glVertex(short x, short y, short z);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4s")]
        public static extern void glVertex(short x, short y, short z, short w);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2i")]
        public static extern void glVertex(int x, int y);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3i")]
        public static extern void glVertex(int x, int y, int z);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4i")]
        public static extern void glVertex(int x, int y, int z, int w);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2f")]
        public static extern void glVertex(float x, float y);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3f")]
        public static extern void glVertex(float x, float y, float z);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4f")]
        public static extern void glVertex(float x, float y, float z, float w);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2d")]
        public static extern void glVertex(double x, double y);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3d")]
        public static extern void glVertex(double x, double y, double z);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4d")]
        public static extern void glVertex(double x, double y, double z, double w);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2sv")]
        public static extern void glVertexV2(short[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2iv")]
        public static extern void glVertexV2(int[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2fv")]
        public static extern void glVertexV2(float[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex2dv")]
        public static extern void glVertexV2(double[] coords);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3sv")]
        public static extern void glVertexV3(short[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3iv")]
        public static extern void glVertexV3(int[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3fv")]
        public static extern void glVertexV3(float[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex3dv")]
        public static extern void glVertexV3(double[] coords);

        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4sv")]
        public static extern void glVertexV4(short[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4iv")]
        public static extern void glVertexV4(int[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4fv")]
        public static extern void glVertexV4(float[] coords);
        [DllImport(GlDll, CallingConvention = GlCalling, EntryPoint = "glVertex4dv")]
        public static extern void glVertexV4(double[] coords);
        #endregion
    }
}
